/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * ConfigFile.java
 *
 * Created on 21/Dez/2011, 17:52:45
 */

package intopo.evogame.partnerselection.config;

import intopo.game.Description;
import intopo.game.Game;
import intopo.game.Strategy;

/**
 * A config file needs a game description to be able to read data.  The file contents may be plain text or XML data.
 * 
 * @author <a href="mailto:mariano.pedro@gmail.com">Pedro Mariano</a>
 *
 * @version 1.0 21/Dez/2011
 */
abstract public class AbstractConfigFile<
		D extends Description<G, S>,
  		G extends Game<S>,
		S extends Strategy<S>
	>
{
	/**
	 * The description used to read and write data to a configuration file.
	 */
	protected D description;

	/**
	 * The game constructed from read data.
	 */
	protected G game;
	/**
	 * 
	 * @param description
	 */
	protected AbstractConfigFile (D description)
	{
		this.description = description;
	}
	/**
	 * Get the description that is used to read and write a configuration file.
	 * 
	 * @return the description that is used to read and write a configuration file.
	 */
	public D getDescription ()
	{
		return this.description;
	}
	/**
	 * Get the game contained in this config file.
	 * 
	 * @return the game contained in this config file.
	 */
	public G getGame ()
	{
		return this.game;
	}
}

// Local Variables:
// mode: java
// mode: flyspell-prog
// ispell-local-dictionary: "british"
// End:
